911, tessék?
911, miben segíthetünk?
911, miben...
2014. április 9-én a segélyhívó szolgálat hirtelen elérhetetlenné vált
az Egyesült Államok több millió lakosának.
Közel hat óráig elérhetetlen volt.
Több mint 6000 segélykérő hívás nem ért célt.
A kormány lenyomozta, hogy a problémát
a coloradói Englewoodban működő hívásátirányító okozza.
Egyszerű kódolási hiba volt.
A számítógép kódolásáért felelősök
úgy döntöttek, rögzítik a regisztrálható hívások felső határát,
amiről azt gondolták, a számítógép soha nem éri el.
De azon az éjszakán, 2014-ben, elérte.
A számítógép tökéletesen követte az utasításait.
Elérve a limitet, nem irányította át a hívásokat.
A probléma nem a számítógép volt,
vagy egy hiba a kódban.
Maga a kód,
a döntéshozatal, amellyel az emberek kommunikálnak
a számítógéppel.
Ez a hatalom nagy etikai felelősséggel jár.
Semmihez nem fogható.
Nincs semmi, ami pótolja.
Nagyjából ugyanúgy,
mint a város építői
eldöntik, hogy élsz a városban,
a kódok az online életünket irányítják, végül is azt, ahogyan élünk.
Nem csak amikor internetezünk,
hanem mikor segélyhívást indítunk,
vagy orvoshoz megyünk...
vagy kocsikázni.
Minden nap kapcsolatba kerülünk kódokkal.
Csak 0,3%-unk tud kódot írni.
A túlnyomó többségnek ez magas.
De nem kell így lennie.
Hogy működik a kódolás?
És milyen új világot építünk vele?
A NETFLIX SAJÁT GYÁRTÁSÚ DOKUMENTUMFILM-SOROZATA
A számítógép.
Egy zseniális elektronikus hardvergyűjtemény,
melyet az ember teremtett.
Vannak megfelelő gépeink a problémáink megoldásához,
de nem tudjuk, hogyan oldjuk meg a problémáinkat.
Ha valaki programozik, azt hiszed, nagyon nehéz.
Nem szabad elfelejtenünk, hogy minden, amit a számítógépen használunk,
ember alkotta.
PROGRAMOZÁS
Tegyük fel, hogy megkérdeznél egy idegent: "Miért fontos a kód?"
Mi az?"
"Tudod,
ezen a földön élünk és úgy 50 éve
egy embercsoport másik bolygót kezdett építeni.
De nem fizikait.
Körbenézve az utcán, látod az embereket
lehajtott fejjel, a telefonjukba mélyülve?
Abban a világban vannak.
Ez a kód.
A másik világ építőkövei.
Ez a szövőszék a föld összes számítógépének és okostelefonjának őse.
1804-ben találták fel,
a nagy áttörést a kártyák jelentették.
Az egyes kártyák lyukai csak bizonyos tűket engedtek át.
A több száz kártyán lévő több ezer lyukkal
a szövők bonyolultabb mintákat tudtak készíteni.
A kidolgozott kendők népszerűek lettek Európában.
A szövött minták olyan bonyolultak voltak, hogy rajzoknak tűntek,
mint a szövőszék feltalálójáé itt.
A szövőszékek előtt kézzel kellett a szálakat kiválasztania
gyerekeknek.
A számolást is kézzel csinálták
úgynevezett "számítógépekkel".
Az első számítógépek emberek voltak.
A legjobb rendelkezésre álló gépek
egyfajta matematikai műveletet tudtak,
mint az abakusz, amivel összeadni és kivonni lehet.
A brit matematikus, Charles Babbage
bármilyen matekproblémához értő gépet akart,
vagy amit be lehet programozni.
Előállt az "analitikus géppel."
Babbage ötletével beírta magát a történelembe.
A számítógépeket Babbage találta fel,
egy nagyon különc brit feltaláló.
Babbage kitalálta, hogyan működjön.
Volt egy másolata erről a képről.
Babbage analitikai gépe úgy, mint Jacquard szövőszéke
alkatrészeket: hardvereket tartalmazott.
És a szövőszékhez hasonlóan,
a hardver utasításokat a kilyukasztott kártyák formájában lehetett megadni.
A lyukak beengedik a tűt,
lyuk hiányában pedig a tűk visszamentek,
beindítva a mechanikai számolások láncolatát.
A különböző lyukú kártyák
jelentik a szoftvert.
Babbage sosem fejezte be a gépet,
de a vele dolgozó fiatal nő annak világmegváltó lehetőségét
nem a matematikában látta.
Ada Byron, Lovelace grófnője azt írta:
"a számtan határai abban a pillanatban megszűntek,
hogy a kártyákat alkalmazták..."
Látta, amit Jacquard látott:
a lyukak többet jelenthetnek számoknál.
Lehetnek minták,
zene...
vagy teljes mondatok.
Morzekódként is gondolhatunk rájuk.
A morzekód ábécé minden betűje csak két jelből áll:
...vagy...
Bináris.
Ezekkel a hangokkal bármit elmondhatunk,
ahogy a Titanic tette 1912-ben, a vészhívásában.
Az "SOS" nem jelöl semmit.
Csak hihetetlenül egyszerű morzekódként elküldeni.
Minden betű nullák és egyesek kombinációjában fejezhető ki.
Ismerős?
Ez bináris kód.
Így csökkentjük a gépek és az emberi nyelv közötti szakadékot.
Mindegyik egyes vagy nulla egy bináris szám vagy "bit."
Ezek a modern számítástechnika atomjai.
Másik néven ismertek:
egy bájt nyolc bit.
Tudod, hogy az a kép a számítógépeden 1,1 megabájt?
Ez nyolcmillió-nyolcszázezer egyes és nulla.
Ahogy a morzekódok pontjai és vonalai egy módja a leírásnak...
a bináris kód egyesei és nullái is egy módja leírni,
mi történik egy modern számítógépen:
a töltés megléte vagy hiánya.
Ez egy egyszerű áramkör.
Milliónyi ilyen dolgozik együtt.
Ez ma egy számítógép.
Egy áramkörön ez egy bit.
A villanykörte nem ég? Zéró.
Ég? Egy.
A számítógépek csak az áramot értik,
így minden, amit a programozók tesznek,
a végén
a töltés ki/bekapcsolásának sorozata.
Azért működik, mert helyesen összerakva,
a töltések logikát mutatnak.
A logika előrejelezhető tények és események sorozata,
például e kapcsoló és...
egy másik lekapcsolása a csengőhöz.
A programozók "logikai áramkör" -nek hívják.
Vagy logikai "kapu" -nak.
Vajon meg tudom csinálni az asztal kilyukasztása nélkül?
Egy logikai áramkörben mindkettőt zárni kell
hogy felkapcsoljon.
És vannak vagy-vagy kapuk,
ahol a fény akkor kapcsol be, ha az egyik áramkör zárul be.
Máshogy is mondhatjuk.
Ha valamelyik áramkört lezárjuk, a lámpa kigyullad.
Ez a fajta "ha, akkor" kijelentés,
egy algoritmus.
A mai popkultúrában az "algoritmus" szó sok zűrzavart okoz.
Láttuk már, amikor az algoritmusok megbolondultak!
Az algoritmusok működése a legtöbb ember számára rejtély.
Mi a fene az algoritmus egyébként?
De az algoritmus csak egy sor utasítás.
Tegyük fel, hogy boltba megyünk.
Mehetünk balra és jobbra is.
Vagy mehetünk jobbra, majd balra.
Vagy fordulhatunk négyszer balra,
a park körül,
át egy autópályán,
majd négyszer jobbra.
Több irányból eljutunk ugyanarra a helyre.
A programozásban sokféle algoritmus van
ugyanazon gond megoldásához.
A cél, hogy megtaláljuk a legelegánsabbat, leghatékonyabbat.
A gyönyörű kód nem ismétli önmagát.
Nagyon elegáns. Nagyon erős.
Az algoritmusokat futtató gépek azt teszik, amit mondunk,
csak sokkal gyorsabban,
amitől befolyásosabbak lettünk.
Amikor a tudósok elkezdték fejleszteni a hidrogénbombát,
főként emberi számítógépeket használtak.
De aztán ehhez fordultak:
az ENIAC hat hétig futtatott termonukleáris számításokat.
Az eredmények közvetlenül hozzájárultak ehhez,
a bomba első sikeres tesztjéhez 1952-ben,
mely százszor pusztítóbb volt az atommaghasadásos bombáknál,
amiket a második világháborúban dobtak le Hiroshimára és Nagaszakira.
A programozás erejétől az emberek képesek voltak
azt tenni, amit akartak.
Az 1940-es években még sok volt a tennivaló.
A nullákban és egyesekben írt programok egyértelműen nem voltak elegendőek.
Az emberek többet akartak a kódolástól.
De könnyebb módot akartak.
A programozás története azóta a kódoknak az emberi nyelvhez
történő közelítéséről szól
az összes mai programozó által használt dolog feltalálásával:
ezek a programozónyelvek.
A nullákhoz és egyesekhez képest ezek a nyelvek elég elvontak.
Az absztrakció nehezen érthető.
Az absztrakt nyelvek ugyanúgy nullákból és egyesekből állnak,
csak jobban szerveződnek.
Ha biológiai értelemben vesszük,
az emberek nagyon összetettek,
de testünk 99%-a csak hat elemből áll.
És feldolgozhatod magad a nagy molekulákig.
A szervezeti réteg és
a legegyszerűbb élőlény között valójában jelentős ugrás van.
És az emberek agya
olyan bonyolult dolgokra képes,
hogy nehéz elhinni, hogy ugyanazon anyagokból álnak.
A számítógépek ilyenek, de sokkal egyszerűbbek.
Ez a jó hír.
A programozás története ennek a doboznak a felfelé mozgatása,
eltávolodva a bináristól,
hogy egyszerűbben, gyorsabban és hatékonyabban programozzunk
anélkül, hogy meg kellene érteni,
a mögöttes binárist és a logikai kaput.
A programozók így alkotják az általunk ismert termékeket.
Az első lépés...
az "assembly nyelv" volt, melyet könnyebb olvasni és írni,
ahol a 0-1-0-0-0-1-1-1 helyett
azt mondod "add,"
aztán egy program lefordítja az A-D-D
betűket a megfelelő nullára és egyesekre.
Itt a nullák és egyesek betűkbe és számokba rendeződnek,
mint az atomok molekulákba.
De az assembly programozás sem volt könnyű,
mert a számítógépek különböző assembly nyelveket használtak.
Ha írtál egy programot egy számítógépre, a többin nem működött.
Nagyon gyorsan gondolkodni kezdtek,
hogy olyan kifejezéseket adjunk a gépnek,
amiket a mindennapokban is használunk.
Vannak programozási nyelvek,
amelyeket assembly nyelvből hoztunk létre,
és azokból hoztunk létre további programozási nyelveket.
Valószínűleg ismerősek.
- LISP. - BASIC.
- Java. - C++.
- Python 3. - HTML 5.
PEARL, PHP, egy kis C...
Csakúgy, mint a beszélt nyelvekkel másképp
fejezhetők ki ugyanazok a gondolatok,
a programozási nyelvek ugyanazon gondolatot
másképp közlik a gépekkel.
Egynél több magas szintű nyelvünk van,
mert más nyelvek
más igényekre irányulnak.
Nézzük ezt a kettőt!
Ez a COBOL, az 1950-es évek végén született,
hogy megkönnyítse a vállalatoknak a kódok használatát.
Sokban hasonlít az angolra, kivéve, hogy minden társalgás
"STOP RUN" utasítással zárul.
Ez a CPL. Az 1960-as években fejlesztették ki és tudományosabb volt.
Olyan, mint a biológiai evolúció.
Ahogy bonyolódnak az organizmusok,
úgy alkalmazkodnak jobban az adott környezetükhöz.
És őszintén szólva, ízlésről is szó van.
Az emberek szeretik több módon kifejezni magukat.
Például a C ++ nyelvnek...
Elon Musk, nem rajongója.
Lehet csinálni egyet.
Ez egy magas szintű nyelv, mely a "moo" szóból áll.
Komolyan. A neve COW.
Ez itt Arnold Schwarzenegger-filmekből származó idézetekből áll.
Amikor azt hiszem: "Oké, már biztos nincs több,"
valaki más előjön egy új nyelvvel és egy csapat követője lesz.
Szóval nem látom a végét az új nyelvek feltalálásának.
És ezek a nyelvek a logikán alapulnak.
Például, a Netflix egyik programozója azt mondaná:
"Ha több mint két óráig nézik,
akkor ez jelenjen meg."
De a legtöbb embert érintő kódhoz
számítógép szükséges.
Így a gépeknek egyszerűbbnek,
barátságosabbnak,
kellett lenniük, ami óriási lépés.
Itt kezdődött,
Doug Englebart 1968-as demójában.
Egy pillanat és látjuk, hogy dolgozik
és miként mozog a nyomkövető pont
az egér mozgásával összhangban.
Ma az emberek nem papírra vetett kijelentések leírásával programoznak,
amit aztán odaadnak valakinek,
aki legépeli.
Leülsz a képernyő elé, van grafikus felhasználói felületed.
Amit ma GUI-nak hívunk.
A GUI-kkal az emberek gépelés nélkül kódolhatnak.
Vagy könnyebben használhatják a kódot.
Általában az Alan és társai által oly gyönyörűen, a 70-es évek elején,
a Xerox Palo Alto Kutatási Központban
megalkotott programozási környezetben dolgozunk.
"Alan."
Ő Alan.
A személyes számítástechnika atyjaként tekintek rá,
mert ő volt az első, aki megfogalmazta ezt a jövőképet.
És be kell vallanom, akkoriban azt hittem, hogy az egész sci-fi.
Amikor nagy dolgok történnek,
általában egy egész közösség van.
És, apám, Park fantasztikus volt.
Mint a varázslat.
A grafikus felhasználói felület több millió embernek
lehetővé tette, hogy természetes módon használja a gépeket.
Amikor a Xerox 1979-ben először hirdette a GUI-kat,
megmutatták a programozás, miként változtatja meg az életet.
Bemész dolgozni és a Xerox
megjeleníti a leveleid a képernyőn.
Hamarosan ilyen Xerox-rendszerek
segítenek a legértékesebb erőforrás, az információ kezelésében.
Sok hasonló ember volt és sokan ebben
a kutatócsoportban jobbá akarták tenni a világot.
Olyan ötletük volt, ami mélyen összefügg
az emberi növekedéssel.
Valami, ami kölcsönhatna velünk,
az emberekkel,
az átlagemberrel, és több mindenre képessé
tesz, mint azelőtt.
Általa többre lettünk képesek.
A GUI-k nagy ugrást jelentettek.
Majd jött a következő világmegváltó újítás.
A programozással létrehozható dolgok terjesztésének új módja.
A TV-ben próbálták megjósolni, mi lesz ebből a sok kódolásból.
Képzeljék el, hogy leülnek reggel kávézni,
bekapcsolják a számítógépet, hogy elolvassák az újságot.
Képzeljenek el egy világot, ahol minden betű, minden kép,
minden film azonnal megtekinthető az otthonukban.
Azt hiszem, valami szívderítő és félelmetes dolog határán vagyunk.
De csak egy eszköz, nem?
Nem, nem az.
A legjelentősebb szoftvertermékek használják ezeket az újításokat.
Egy egyetemista egy magas szintű programozási nyelvvel, a PHP-val
osztott meg valamit az interneten,
hogy grafikus kezelőfelületen használják.
Az első tévés interjújában mesélt róla, 2004-ben.
Ez egy online telefonkönyv, amely egyetemeken és főiskolákon,
keresztül köt össze embereket.
Most 100 000 emberünk van, és ki tudja, hová tartunk.
Több mint kétmilliárd ember van fent
a Facebookon havonta.
A programozók ma emberek milliárdjainak életét alakítják.
Miként dolgoznak, vásárolnak, esznek, randiznak és ejtőznek.
Mit csinálsz éppen?
Egy Netflix webböngészőn nézel.
A Netflix maga is egy kód, amit egy webböngésző futtat,
vagyis egy kód,
amit egy programozáshoz tervezett számítógépen futtatnak.
Vég nélküli visszafejlődés.
A jó kód olyan, mint egy olyan múzeum építészének lenni,
amelyre milliók gondolnak,
látogatnak és használnak naponta.
Szerintem a kódíráshoz semmi nem fogható, mert tiszta teremtésnek hat.
Van egy ötleted, hogy működjön valami,
és próbálsz leülni egy számítógép elé
és megvalósítani azt.
Úgy vélem, nagy a felelősség ebben.
Tudod, van egy sebességhatár.
Legfeljebb 96 km/óra.
Rendben.
De mi van, ha azt mondja a számítógép,
hogy a kocsid nem mehet 96-nál gyorsabban?
Ez a viselkedés irányításának más módja.
A döntéseink irányításával az életünk kódjai
gyakran mélyebb szabályozói hatással vannak, mint a törvények.
És ez talán nagyszerű dolog.
Amerikában évente közel hatmillió autóbaleset történik
és egy elemzés szerint 94%-ukat a sofőr okozza.
A programozás fejlődése milliók életét mentheti meg.
De új módon veszélybe is sodorhatnak.
Hipertrófiás kardiomiopátiám van,
ami azt jelenti, hogy nagy a szívem.
A szívem tényleg nagy.
Háromszor akkora, mint egy normál ember szíve.
30 évesen tudtam meg és az, hogy 40 éves koromra meghalok,
nagyon esélyes volt.
Az elektrofiziológus azt mondta, ez nem gond,
mert lehet pacemakerem."
Ez az eszköz kódok segítségével működik.
Pár évvel ezelőtt, mikor terhes voltam, erős szívdobogásom volt.
A nők egynegyedének van ilyen, teljesen normális.
De a műszerem azt hitte, veszélyes ritmusban vagyok,
és megrázott.
A gyártóknak nem érdekük, hogy terhes nőket rázzanak meg.
Ez az utolsó dolog, amit akarnak.
Csak nem vették figyelembe.
Hatalmas döntések vannak,
és ezeket a programozók hozzák meg.
És elkerülhetetlenül
lesz a körülményeknek olyan együttállása,
amelyeket nem láthatnak előre.
Szóval próbáljuk megtanítani
a programozás
tanításakor,
hogyan kell ezekre
a különböző körülményekre gondolni.
Hogy legyenek alaposak
anélkül, hogy a számtalan dolog, amit figyelembe kell venni,
lebénítaná őket.
És ez csak igazabb lesz, mert teljesen új módon
kezdtünk programozni.
A hagyományos programokban a számítógépet utasítottuk.
De most inputokat és outputokat megadva
a számítógép
megírja a saját utasításait.
Sok példát adunk a számítógépnek
és azt mondjuk:
"Ez egy buli."
Aztán vannak más dolgok.
Fogorvosi rendelő: nem buli.
Osztályterem: nem buli.
Ránéz ezekre a gép és megpróbál felépíteni
egy osztályozási rendszert.
Ez a gépi tanulás.
Ma ha valaki azt mondja, mesterséges intelligencia,
erre gondol.
Teljesen másfajta absztrakció
és módszer,
mert nem igazán illeszkedik abba, ahogy ezeket felépítjük.
Gépi tanulási algoritmusoknak hívják őket, mert a gép
hozza létre a követendő parancsokat.
Persze végül ezeket is lefordítja
apró utasításokra.
A Google Fordító több millió kódból állt.
Az emberek milliónyi utasítást írtak.
Ma a Google Fordító úgy ötszáz sor kódból áll,
amely bevonja a gépi tanulást.
Tegyük fel, hogy egy tévedés következtében az általad feltett fotókon
nem szerepel fekete vagy latino személy.
A gép dönthet úgy, hogy az a szabály,
hogy csak fehér és ázsiai embereket hívhat meg.
Sok fehér és ázsiai fickó programoz.
Bővítenünk kell a programozók körét
egymillió okból.
Jobb kérdéseket tesznek fel nagyobb élettapasztalattal.
Végül, ha tápláljuk a gépi tanulás rendszeradatait,
a bűnügyi rendszert, amelynek adataiba strukturális rasszizmust építettek,
és mondjuk a gépi tanulási programozók olyanok, mint egy Benetton reklám:
különböző fajok, különböző arcok, különböző társadalmi háttér,
a gépi tanulási rendszer akkor is az adatokból tanul.
Az ilyet aktívan javító emberek nélkül
a történelmi adatokkal megismételjük a múltbeli hibákat.
A MESTERSÉGES INTELLIGENCIA TÉVESEN BÖRTÖNÖZ BE EMBEREKET
A kódolás története az emberi ambíciókról és a kreativitásról szól.
A Falcon-9 rakéta fellövése.
Láttuk, amiről azt hittük, láthatatlan.
A fekete lyukat.
Új világot építünk
több intuitív eszközzel,
hogy több ember használhassa,
hogy a világ tényleg jobb legyen.
Utunk során elérhetőbbé tettük a számítógépeket
rengeteg ember számára.
50 éve, a szemünk előtt zajlik ez a forradalom.
Ezért olyan izgalmas ma élni.
Nem szabad elfelejteni, hogy mindent, amit gépen használunk,
emberi lény hozott létre.
Lehetsz te is az a valaki és nagyon fontos,
hogy lehetsz ilyen ember.
Alapjaiban változtathatod meg a világot.
Olyan világot élünk, ami gépi tanuláson,
adatokon és hagyományos programozáson alapul majd.
És társadalomként azt kell mondanunk:
"Van egy erős új technológiánk,
és nagyszerű is lehet, de önmagától nem lesz az."